﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AAA.Chart.Data;
using System.Drawing;
using AAA.Chart.Style;
using AAA.Meta.Chart;

namespace AAA.Chart.Indicator
{
    public interface IIndicator
    {
        void Calculate();
        void Plot(List<float>lstDataSource, string strName, Color cForeColor, Color cBackColor, int iWidth);
        void Plot(List<float> lstXDataSource, List<float> lstYDataSource, string strName, Color cForeColor, Color cBackColor, int iWidth);
        void Plot(List<float> lstXDataSource, List<float> lstYDataSource, List<float> lstTimeDataSource, string strName, Color cForeColor, Color cBackColor, int iWidth);
        void Plot(List<float> lstOpen, List<float> lstHigh, List<float> lstLow, List<float> lstClose, string strName, Color cForeColor, Color cBackColor, int iWidth);
        void Draw(Graphics g);
        string BaseStudy { get; set; }
        IDataSource DataSource { get; set; }
        IChartMeta ChartMeta { get; set; }
        ChartStyleEnum ChartStyle { get; set; }
        float CustomXMin { get; set; }
        float CustomYMin { get; set; }
        int XDataType { get; set; }
        int StartIndex { get; set; }
        int EndIndex { get; set; }
        bool Scrollable { get; set; }
        float XMin { get; }
        float XMax { get; }
        float YMin { get; }
        float YMax { get; }
        int XAxis { get; set; }
        int YAxis { get; set; }
        string Name { get; set; }
        DataTypeEnum DataField { get; set; }
/*
        float GetYMax(int iStartIndex, int iEndIndex);
        float GetYMin(int iStartIndex, int iEndIndex);
 */ 
    }
}
